package zsrt.com.dao.impl;

import java.util.Collection;
import java.util.Map;
import zsrt.com.dao.ExamineeDao;
import zsrt.com.excel.SetValue;
import zsrt.com.excel.GetValue;

/**
 * 管理员业务类的实现类
 * @author 罗智壕-13424431416
 *
 * 2017年4月21日
 */
public class AdminBusinessDaoImpl extends AdminBusinessAbstractDaoImpl {
	/**
	 * 考生的增加
	 * @param map			装入考生的容器
	 * @param examineeDao	需要装入考生的对象
	 * @return				返回结果
	 */
	public boolean examineeAdd(ExamineeDao examineeDao){
		//判断传入的考生是否为空
		if(examineeDao == null){
			System.err.println("需要增加的考生不能为空...");
			return false;
		}
		//从excel表格拿到数据存储到map
		Map<String, ExamineeDao> map = GetValue.getValue();
		//然后把传进来的对象装入map
		map.put(examineeDao.getId(), examineeDao);
		//更新excel表格
		SetValue.bmsRRnoExcel(map);
		System.err.println("增加成功...");
		return true;
	}
	
	/**
	 * 考生的修改
	 * @param map			修改的容器
	 * @param examineeDao	修改的对象
	 * @return				返回结果
	 */
	public boolean examineeUpdate(ExamineeDao examineeDao){

		//从excel表格拿到数据存储到map
		Map<String, ExamineeDao> map = GetValue.getValue();
		//获取准考证号
		String id = examineeDao.getId();
		//根据准考证获取到这个对象进行修改
		ExamineeDao examineeObject = map.get(id);
		examineeObject.setAge(examineeDao.getAge());
		examineeObject.setPassword(examineeDao.getPassword());
		examineeObject.setProvince(examineeDao.getProvince());
		examineeObject.setCity(examineeDao.getCity());
		//更新excel表格
		SetValue.bmsRRnoExcel(map);
		return true;
	}
	
	/**
	 * 考生删除
	 * @param examiness		需要删除的容器
	 * @param examineeDao	需要删除的对象
	 * @return				返回结果
	 */
	public boolean examineeDelete(ExamineeDao examineeDao){
		//首先获取到id判断是否传到值
		String id = examineeDao.getId();
		if(null == id){
			System.err.println("需要删除的准考证号不能为空...");
			return false;
		}
		//返回判断结果
		boolean result = super.examineeGudge(id);
		if(result){
			//从excel表格拿到数据存储到map
			Map<String, ExamineeDao> map = GetValue.getValue();
			//进行删除
			map.remove(id);
			//更新excel表格
			SetValue.bmsRRnoExcel(map);
			return true;
		}
		return false;
	}
	
	/**
	 * 考生查询
	 * @param examiness		需要查询的容器
	 */
	public void examineeQuery(){
		System.err.println("-------------------------------------------------------"
				+ "----------------------------------------------------");
		//从excel表格拿到数据存储到map
		Map<String, ExamineeDao> map = GetValue.getValue();
		//获取map中的考生对象
		Collection<ExamineeDao> values = map.values();
		//超级循环
		for(ExamineeDao dao : values){
			System.err.println(dao);
		}
		System.err.println("-----------------------------------------------------"
				+ "------------------------------------------------------");
	}
	
	/**
	 * 考生根据名字查询
	 * @param examiness		需要查询的容器
	 * @param examineeDao	需要查询的名字
	 */
	public void examineeQueryByName(ExamineeDao examineeDao){
		//获取到名字
		String name = examineeDao.getName();
		//从excel表格拿到数据存储到map
		Map<String, ExamineeDao> map = GetValue.getValue();
		//查询出map里面的全部value,key不会查出来
		Collection<ExamineeDao> values = map.values();
		System.err.println("-------------------------------------------------------"
				+ "----------------------------------------------------");
		//获取到考生对象
		for(ExamineeDao dao : values){
			String objectName = dao.getName();
			if(name.equals(objectName)){
				System.err.println(dao);
			}
		}
		
		System.err.println("-------------------------------------------------------"
				+ "----------------------------------------------------");
	}
	
	/**
	 * 根据考生所在地查询
	 * @param examiness		需要查询的容器
	 * @param examineeDao	需要查询的条件
	 */
	public void examineeCity(ExamineeDao examineeDao){
		String city = examineeDao.getCity();
		if(null == city){
			System.err.println("所在地不能为空...");
			return;
		}
		//从excel表格拿到数据存储到map
		Map<String, ExamineeDao> map = GetValue.getValue();
		//获取map中的考生对象
		Collection<ExamineeDao> values = map.values();
		System.err.println("-------------------------------------------------------"
				+ "----------------------------------------------------");
		//获取到考生对象
		for(ExamineeDao dao : values){
			String cityValue = dao.getCity();
			if(cityValue.equals(city)){
				System.err.println(dao);
			}
		}
		System.err.println("-------------------------------------------------------"
				+ "----------------------------------------------------");
	}
	
	/**
	 * 根据准考证号查询
	 * @param examiness		需要查找的容器
	 * @param examineeDao	需要查找的对象
	 */
	public void examineeQueryById(ExamineeDao examineeDao){
		//从excel表格拿到数据存储到map
		Map<String, ExamineeDao> map = GetValue.getValue();
		String id = examineeDao.getId();
		if(null != map.get(id)){
			System.err.println("-------------------------------------------------------"
					+ "----------------------------------------------------");
			System.err.println(map.get(id));
			System.err.println("-------------------------------------------------------"
					+ "----------------------------------------------------");
		}else{
			System.err.println("该准考证号不存在...");
		}
		
	}
}
